#ifndef PIPE_H_
#define PIPE_H_

#include <unistd.h>
#include <fcntl.h>

#define	LECTURA		0
#define	ESCRITURA	1

class Pipe {

private:

	int descriptores[2];
	bool lectura;
	bool escritura;

public:
	Pipe();
	virtual ~Pipe();

	/* modo lectura o escritura */
	void setearModo ( int modo );

	/* escribe el dato en el pipe.
	 * setea el pipe en modo escritura
	 * devuelve la cantidad de bytes escritos o -1 en caso de error */
	int escribir ( char* dato,int datoSize );


	/* lee datos del pipe.
	 * setea el pipe en modo lectura
	 * devuelve la cantidad de bytes leidos o -1 en caso de error */
	int leer ( char* buffer,int buffSize );

	int getFdLectura ();
	int getFdEscritura ();

	/* devuelve true si algun file descriptor es valido */
	bool esValido();

	void cerrar ();
};

#endif /* PIPE_H_ */

